home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / HandHeldPCPro30 / sdk.exe / Jupiter SDK / data1.cab / Emulation_Include_Files / kxarm.h < prev    next >
Encoding:
Text File  |  1999-02-19  |  2.3 KB  |  132 lines

  1. ;++
  2. ;
  3. ; Copyright (c) 1997-1998 Microsoft Corporation
  4. ;
  5. ; Module Name:
  6. ;
  7. ;    kxarm.h
  8. ;
  9. ; Abstract:
  10. ;
  11. ;    This is an implementation of the WINCE/ARM Calling Sequence
  12. ;    Specification.
  13. ;
  14. ; Environment:
  15. ;    Kernel mode or User mode.
  16. ;
  17. ; Revision History:
  18. ;--
  19.  
  20.         GBLS    VBar
  21. VBar    SETS    "|"
  22.         GBLL    HaveExceptHandler
  23.         GBLS    AreaName
  24.         GBLS    FuncName
  25.         GBLS    PrologName
  26.         GBLS    FuncEndName
  27.         GBLS    ExceptHandler
  28.         GBLS    ExceptData
  29. AreaName SETS    "|.text|"
  30. HaveExceptHandler SETL {FALSE}
  31.  
  32.     MACRO
  33.     TEXTAREA
  34.     AREA |.text|,CODE
  35. AreaName SETS "|.text|"
  36.     MEND
  37.  
  38.     MACRO
  39.     STARTUPTEXT
  40.     AREA |.astart|,CODE
  41. AreaName SETS "|.astart|"
  42.     MEND
  43.  
  44.     MACRO
  45.     START_REGION    $NameBegin
  46.     LCLS    TempName
  47. TempName SETS    VBar:CC:"$NameBegin":CC:VBar
  48.     EXPORT    $TempName[DATA]
  49. $TempName
  50.     MEND
  51.  
  52.     MACRO
  53.     END_REGION        $NameEnd
  54.     LCLS    TempName
  55. TempName SETS    VBar:CC:"$NameEnd":CC:VBar
  56.     EXPORT    $TempName[DATA]
  57. $TempName
  58.     MEND
  59.  
  60.     MACRO
  61.     NESTED_ENTRY    $Name
  62. FuncName SETS    VBar:CC:"$Name":CC:VBar
  63. PrologName SETS    VBar:CC:"$Name":CC:"_Prolog":CC:VBar
  64. FuncEndName SETS    VBar:CC:"$Name":CC:"_end":CC:VBar
  65.     LCLS    ExceptBit
  66.     IF HaveExceptHandler
  67. ExceptBit SETS    "0x80000000"
  68.     ELSE
  69. ExceptBit SETS    "0"
  70.     ENDIF
  71.  
  72.     AREA |.pdata|,PDATA
  73.     DCD    $FuncName
  74.     DCD (($PrologName-$FuncName)/4) :OR: ((($FuncEndName-$FuncName)/4):SHL:8) :OR: 0x40000000 :OR: $ExceptBit
  75.  
  76.     AREA $AreaName,CODE
  77.     ALIGN    4
  78.     EXPORT    $FuncName
  79.     IF HaveExceptHandler
  80.     DCD    $ExceptHandler
  81.     DCD    $ExceptData
  82. HaveExceptHandler SETL {FALSE}
  83.     ENDIF
  84. $FuncName
  85.     ROUT
  86.     MEND
  87.  
  88.     MACRO
  89.     PROLOG_END
  90. $PrologName
  91.     MEND
  92.  
  93.     MACRO
  94.     LEAF_ENTRY    $Name
  95. FuncName SETS    VBar:CC:"$Name":CC:VBar
  96. PrologName SETS    "Invalid Prolog"
  97. FuncEndName SETS    VBar:CC:"$Name":CC:"_end":CC:VBar
  98.     ALIGN    4
  99.     EXPORT    $FuncName
  100. $FuncName
  101.     ROUT
  102.     MEND
  103.  
  104.     MACRO
  105.     ALTERNATE_ENTRY    $Name
  106.     LCLS    TempName
  107. TempName SETS    VBar:CC:"$Name":CC:VBar
  108.     EXPORT    $TempName
  109. $TempName
  110.     MEND
  111.  
  112.     MACRO
  113.     ENTRY_END    $Name
  114. $FuncEndName
  115.     MEND
  116.  
  117.     MACRO
  118.     EXCEPTION_HANDLER    $Handler
  119. ExceptHandler SETS    VBar:CC:"$Handler":CC:VBar
  120. ExceptData SETS "0"
  121. HaveExceptHandler SETL {TRUE}
  122.     MEND
  123.  
  124.     MACRO
  125.     EXCEPTION_HANDLER_DATA    $Handler, $HandlerData
  126. ExceptHandler SETS    VBar:CC:"$Handler":CC:VBar
  127. ExceptData SETS    VBar:CC:"$HandlerData":CC:VBar
  128. HaveExceptHandler SETL {TRUE}
  129.     MEND
  130.  
  131.     END
  132.